/**
 * rmh by 20200911
 *
 * vue的配置文件包括webpack的配置
 *
 * 1. 配置打包路径
 * 2. 运行开发模式和线上模式时调用接口时的url
 * 3. 打包不同的模式使用不同的接口的URL
 * **/
const webpack = require('webpack');
const path = require('path');
const fs = require('fs');

function resolve(dir) {
  return path.join(__dirname, dir)
}

module.exports = {
  publicPath: '/',
  outputDir: 'dist',
  devServer: {
    port: 8080,
    host: '0.0.0.0',
    open: false // 自动启动浏览器
    // proxy: {} // 代理设置
  },
  // 样式相关
  css: {
    extract: false, // 是否使用css分离插件 ExtractTextPlugin
    sourceMap: false, // 是否开启css 的sourceMap
    loaderOptions: { // css预设器配置项
    },
    modules: false // 启用 CSS modules for all css / pre-processor files.
  },
  configureWebpack: {
    name: 'test-vue',
    resolve: {
      alias: {
        '@': resolve('src')
      },
      extensions: ['*', '.js', '.vue', '.json']
    },
    plugins: [
      new  webpack.ProvidePlugin({
        'window.Quill': 'quill/dist/quill.js',
        'Quill': 'quill/dist/quill.js',
        jQuery: "jquery",
        $: "jquery"
      })
    ]
  },
  filenameHashing: true, // 生成静态资源文件时, 文件名中添加hash字段
  productionSourceMap: process.env.NODE_ENV === 'development', // 生产环境的source map
  lintOnSave: false, // 是否保存时 lint 代码
  transpileDependencies: ['element-ui'],
  chainWebpack: config => {
    config.entry.app = ['babel-polyfill', './src/main.js'];
    config.optimization.minimize(true);
    config.output.filename('[name].[hash].js').end();
    config.plugins.delete('prefetch');
    config.plugins.delete('preload');
  }
};
